package actions;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;

import modelo.Comentario;
import modelo.Tesina;
import modelo.Usuario;

import org.apache.struts2.interceptor.SessionAware;

import DAO.ComentarioDAO;
import DAO.FactoryDAO;
import DAO.TesinaDAO;
import DAO.UsuarioDAO;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class AgregarComentario  extends ActionSupport implements SessionAware{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Map<String, Object> session;
	private String comentario;
	private Collection <Comentario> collComentarios = new ArrayList <Comentario>();
	private String nombreTesis;
	
	
	
	public Collection<Comentario> getCollComentarios() {
		return collComentarios;
	}

	public void setCollComentarios(Collection<Comentario> collComentarios) {
		this.collComentarios = collComentarios;
	}

	public String getNombreTesis() {
		return nombreTesis;
	}

	public void setNombreTesis(String nombreTesis) {
		this.nombreTesis = nombreTesis;
	}

	public String getComentario() {
		return comentario;
	}

	public void setComentario(String comentario) {
		this.comentario = comentario;
	}

	public String execute() throws Exception {
		
		session=ActionContext.getContext().getSession();
		Long id = (Long) session.get("idTesis");
		UsuarioDAO usuarioDAO = FactoryDAO.getUsuarioDAO();
		TesinaDAO tesinaDAO = FactoryDAO.getTesinaDAO();
		Tesina tesis = tesinaDAO.obtenerTesisporID(id);
		Usuario usuario = usuarioDAO.buscarUsuario((Long) session.get("idUsuario"));
		
		ComentarioDAO comentarioDAO = FactoryDAO.getComentarioDAO();
		comentarioDAO.agregarComentario(tesis,usuario, comentario);
		collComentarios= comentarioDAO.obtenerComentariosporIdTesis(id);
		
		session.put("contenido", "/jsp/contenidoBack/listarTesis.jsp");
		if (collComentarios == null || collComentarios.isEmpty()){
			return "SUCCESS";
		}else {
			nombreTesis = collComentarios.iterator().next().getTesina().getTitulo();
			session.put("idTesis", id);
			session.put("coll", collComentarios);
			return "SUCCESS";
		}
		
		
	}
	
	public void validate(){
		if (getComentario().equals("")){
			addFieldError("error", "Se tiene que agregar un comentario");
			
			
		}else if (getComentario().length() < 10){
			addFieldError("erro2", "La cantidad minima de caracteres es 10");
		}

	}

	@Override
	public void setSession(Map<String, Object> arg0) {
		// TODO Auto-generated method stub
		
	}
}
